//functions with an array argument
/*
*/
//运行此程序需要创建一个包含数字的文本文件,为此,可以使用文本编辑器.
//同时需要保证程序能够找到这个文件.通常情况下,除非在输入的文件名中包含路径,否则程序将在可执行文件所属的文件夹中查找.
//Windows文本文件的每行都以回车字符和换行字符结为;通常情况下,C++在读取文件时将这两个字符转换为换行符.并在写入文件时执行相反的转换.
#include<iostream>
#include<fstream>       //file I/O support
#include<cstdlib>       //support for exit()

const int SIZE = 60;
int main()
{
    using namespace std;
    char filename[SIZE];
    ifstream inFile;                // object for handling file input
    cout << "Enter name of data file: ";
    cin.getline(filename,SIZE);
    inFile.open(filename);          //  associate inFile with file a file
    if(!inFile.is_open())           //failed to open file
    {
        cout << "Could not open the file " << filename << endl;
        cout << "Program terminating.\n";
        exit (EXIT_FAILURE);
    }
    double value;
    double sum = 0.0;
    int count = 0;          //number of items read

    inFile >> value;        // getfirst value
    while(inFile.good())        //while input good not at EOF
    {
        ++count;            //one more item read
        sum += value;       //calculate running total
        inFile >> value;    //get next value
    }
    if(inFile.eof())
        cout << "End of file reached.\n";
    else if (inFile.fail())
        cout << "Input terminated by data mismatch.\n";
    else
        cout << "Input terminated fot unknown reason.\n";
    if (count == 0)
        cout << "No data processed.\n";
    else
    {
        cout << "Items read : " << count << endl;
        cout << "Sum: " << sum << endl;
        cout << "Average: " << sum / count << endl;
    }
    inFile.close();     //finished with the file
    return 0;
}
